package duppentity;

import com.google.gson.JsonObject;
import duppentity.annotations.Dupp;
import duppentity.annotations.Param;
import play.cache.CacheFor;

import javax.swing.border.Border;

/**
 * @author yangzhi
 * @date 2019/1/14
 */
public interface SysDupp {

	/**
	 * 省份
	 * @param offset
	 * @param count
	 * @return
	 */
	@Dupp("mng.province.getList")
	JsonObject getProvinceList(@Param("offset")Integer offset,
							   @Param("count")Integer count);

	/**
	 * 通过省份获取市
	 * @param offset
	 * @param count
	 * @return
	 */
	@Dupp("city.getListByProvinceId")
	JsonObject getCityListByProvinceId(@Param("provinceId")Integer provinceId,
									   @Param("offset")Integer offset,
									   @Param("count")Integer count);

	/**
	 * 通过市获取县
	 * @param offset
	 * @param count
	 * @return
	 */
	@Dupp("area.getList")
	JsonObject getAreaListByCityId(@Param("cityId")Integer cityId,
								   @Param("offset")Integer offset,
								   @Param("count")Integer count);


	/**
	 * 全部地区
	 * @param offset
	 * @param count
	 * @return
	 */
	@Dupp("mng.zone.getList")
	JsonObject getZoneList(@Param("offset")Integer offset,
							   @Param("count")Integer count);


	/**
	 * 用户反馈
	 */
	@Dupp("mng.sysFeedback.getList")
	JsonObject getSysFeedbackList(@Param("userId") Long userId,
													  @Param("startCreateTime") String startCreateTime,
								                      @Param("endCreateTime") String endCreateTime,
								                      @Param("offset") Integer offset,
								                      @Param("count") Integer count);

	@Dupp("sysFeedback.reply")
	JsonObject replySysFeedback(@Param("id") Integer id,
							                        @Param("reply") String reply,
								            		@Param("modifyBy") Long modifyBy);

	@Dupp( "sysFeedback.get")
	JsonObject getSysFeedback(@Param("id") Integer id);

    /**
     * 常见问题
     */
    @Dupp("mng.sysHelp.getList")
    JsonObject getSysHelpList(@Param("type") Integer type,
    		                                  @Param("offset") Integer offset,
                                              @Param("count") Integer count,
							                  @Param("orderBy") String orderBy);

    @Dupp("sysHelp.update")
    JsonObject updateSysHelp(@Param("id") Integer id,
                                               @Param("title") String title,
                                               @Param("content") String content,
                                               @Param("visual") Integer visual,
                                               @Param("orderIndex") Integer orderIndex,
                                               @Param("type") Integer type,
                                               @Param("modifyBy") Long modifyBy);

    @Dupp( "sysHelp.get")
    JsonObject getSysHelp(@Param("id") Integer id);

    @Dupp("sysHelp.create")
    JsonObject saveSysHelp(@Param("title") String title,
                                           @Param("content") String content,
                                           @Param("visual") Integer visual,
                                           @Param("orderIndex") Integer orderIndex,
                                           @Param("type") Integer type,
                                           @Param("createBy") Long createBy);

    @Dupp("sysHelp.delete")
    JsonObject deleteSysHelp(@Param("id") Integer id,
                                              @Param("modifyBy") Long modifyBy);
}
